package com.czx.drivingtest.service;

import com.czx.drivingtest.model.dto.Question;

import java.util.List;

/**
 * 测试练习题业务层
 *
 * @author czx
 * @version 2020/3/12 8:51 下午
 * @since JDK12
 */
public interface QuestionService {
    /**
     * 根据id获取测试习题
     * @param questionId
     * @return
     */
    Question getQuestionById(Integer questionId);
    /**
     * 获取第一道习题
     * @param subject 科目
     * @return
     */
    Question getFirstQuestion(Integer subject);

    /**
     * 获取下一道题
     * @param questionId
     * @param subject 科目
     * @return
     */
    Question getNextQuestion(int questionId, Integer subject);

    /**
     * 获取上一道题
     * @param questionId
     * @param subject 科目
     * @return
     */
    Question getPreQuestion(int questionId, Integer subject);

    /**
     * 获取题目总数量
     * @param subject 科目
     * @return
     */
    Integer getTotalCount(Integer subject);

    /**
     * 添加问题
     * @param question
     */
    void addQuestion(Question question);

    /**
     * 获取3道题
     * @param questionId
     * @param subject 科目
     * @return
     */
    List<Question> get3Questions(Integer questionId, Integer subject);

    /**
     * 查询问题集合
     * @param idList
     * @return
     */
    List<Question> getByIds(List<Integer> idList);

    /**
     * 获取所有题目Id
     * @param subject
     * @return
     */
    List<Integer> getQuestionIdList(Integer subject);

    /**
     * 随机获取题目
     * @param total
     * @param subject
     * @return
     */
    List<Question> getRandomQuestionList(Integer total, Integer subject);

    /**
     * 根据问题id获取问题的科目
     * @param questionId
     * @return
     */
    Integer getSubjectByQuestionId(Integer questionId);

}
